package office.service.business;

import java.util.List;

import office.action.business.form.ContractConditionForm;
import office.action.business.form.ContractForm;
import office.action.business.wrapper.ContractWrapper;
import platform.common.bo.Page;
import platform.common.exception.BusinessException;

/**
 * 合同管理
 * @author ZhangYQ
 *
 */
public interface IContractService {
	/**
	 * 获取分页信息
	 * @return
	 * @throws BusinessException
	 */
	public Page getPageInfo(ContractConditionForm condition)throws BusinessException;
	/**
	 * 获取所有的合同
	 * @param page
	 * @return
	 * @throws BusinessException
	 */
	public List<ContractWrapper> findAllContract(ContractConditionForm condition,Page page)throws BusinessException;
	/**
	 * 编辑合同
	 * @param saleChanceForm
	 * @throws BusinessException
	 */
	public void editContract(ContractForm form)throws BusinessException;
	
	/**
	 * 删除合同
	 * @param id
	 * @throws BusinessException
	 */
	public void delContractById(String id)throws BusinessException;
	/**
	 * 根据id获取对象
	 * @param id
	 * @return
	 * @throws BusinessException
	 */
	public ContractForm getById(String id)throws BusinessException;
	/**
	 * 合同开发票
	 */
	public void invoiceGoodsOrder(String id) throws BusinessException;
	/**
	 * 签合同
	 */
	public void signContract(String id) throws BusinessException;
	/**
	 * 合同回款
	 * @param id
	 * @throws BusinessException
	 */
	public void backMoneyContract(String id) throws BusinessException;
	/**
	 * 根据状态获取所有的合同
	 * @param page
	 * @return
	 * @throws BusinessException
	 */
	public List<ContractWrapper> findAllContractByStatus(ContractConditionForm condition)throws BusinessException;
}
